﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using Bridges.Model;
using Bridges.BLL;

namespace Bridges.PL
{
    public partial class _Login : BRIDGES_SESSION
    {

        #region "Eventos"
        /// <summary>
        ///    Evento chamado todo vez que a página é carregada ou atualizada
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            InicializaSessao();
            //InsertAdministrador();
        }

        /// <summary>
        ///    Click do LinkButton Acessar
        /// </summary>
        protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {
            
            //InsertPrefeitura();
            
            Usuario loginUsuario = LoginUsuarioBLL.GetByUser(Login1.UserName);

            string senhaHash = Util.CalcularHash(loginUsuario.Controle + Login1.Password);
            if ((loginUsuario != null) && (loginUsuario.User == Login1.UserName) && (loginUsuario.Senha == senhaHash))
            {
                lblMensagem.Visible = false;
                lblMensagem.Text = "";
                if (loginUsuario.FlagAtivo == "1")
                {
                    // Cuidar para buscar o ID da prefeitura que está logando e passar como parâmetro para o upload.aspx

                    e.Authenticated = true;
                    // FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);

                    ssLOGON = true;
                    ssCdUsuario = Convert.ToInt32(loginUsuario.Id);
                    ssCdEntidade = Convert.ToInt32(loginUsuario.Codentidade);
                    ssLoginNick = loginUsuario.NomeLogin;
                    ssNomePessoa = loginUsuario.NomeLogin;
                    ssTipoUsuario = loginUsuario.Perfil;
                    coLoginNick = ssLoginNick;

                    //lUSLogin.AdicionaAcesso(Convert.ToInt32(lUSLogin.CdUsuario));
                    if (loginUsuario.Perfil == "U")
                    {
                        Response.Redirect("~/sistema/_CadastroProjetos.aspx", false);
                    }
                    else if (loginUsuario.Perfil == "A")
                    {
                        Response.Redirect("~/sistema/_HomeAdministrador.aspx", true);
                    }
                }
                else
                {
                    lblMensagem.Text = "Usuário inativo entre em contato com o administrador";
                    lblMensagem.Visible = true;
                    e.Authenticated = false;
                }

            }
            else
            {
                lblMensagem.Text = "Sua tentativa de login não foi bem sucedida. Por favor, tente novamente.";
                lblMensagem.Visible = true;
                e.Authenticated = false;
            }

        }

        #endregion "Eventos"

        private void InsertAdministrador()
        {

            Pessoa objPessoa = new Pessoa();
            objPessoa.Nomepessoa = "Cleiton Emidio";
            //objPessoa.Tipopessoa = "F";
            objPessoa = PessoaBLL.Insert(objPessoa);

            Perfil objEntidade = new Perfil();
            objEntidade.Codsetor = 1;
            objEntidade.Nome = "Cleiton Emidio";
            objEntidade.FlagSituacao = "1";
            objEntidade.DataCadastro = DateTime.Now;
            objEntidade.Pessoa = objPessoa;
            objEntidade = EntidadeBLL.Insert(objEntidade);
            
            int num = Util.GerarNroAleatorio();
            string senha = num.ToString() + "ativati";
            Usuario novo = new Usuario();
            novo.Controle = num;
            novo.FlagAtivo = "1";
            novo.NomeLogin = "Cleiton Emidio";
            novo.User = "emidio";
            novo.Perfil = "U";
            novo.Senha = Util.CalcularHash(senha);
            novo.Codentidade = objEntidade.Id;
            novo = LoginUsuarioBLL.Insert(novo);
        }
       
        private void InsertPrefeitura()
        {
            /*
            Pessoa objPessoa = new Pessoa();
            objPessoa.Nomepessoa = "Prefeitura Encruzilhada";
            objPessoa.Tipopessoa = "J";
            objPessoa = PessoaBLL.Insert(objPessoa);

            int num = Util.GerarNroAleatorio();
            string senha = num.ToString() + "12345";
            LoginUsuario novo = new LoginUsuario();
            novo.Controle = num;
            novo.FlagAtivo = "A";
            novo.NomeLogin = "Prefeitura Encruzilhada";
            novo.User = "encruzilhada";
            novo.Perfil = "P";
            novo.Senha = Util.CalcularHash(senha);
            novo.Pessoa = objPessoa;
            novo = LoginUsuarioBLL.Insert(novo);
             * */
        }


    }
}